/* Copyright (c) 2004-2024 peigen.info. All rights reserved. */

package info.peigen.hotpot.business.account.facade.info;

import info.peigen.hotpot.business.account.facade.enums.AccountStatus;
import info.peigen.hotpot.business.account.facade.enums.AccountType;
import info.peigen.hotpot.business.router.facade.enums.ChannelCode;
import info.peigen.hotpot.common.core.enums.Currency;
import info.peigen.hotpot.common.core.lang.money.Money;
import info.peigen.hotpot.common.service.base.manage.ManageInfoBase;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

/**
 * <b>(AccountManageInfo)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2022/8/3
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class AccountManageInfo extends ManageInfoBase {
    /** 账户Id */
    String        accountId;
    AccountType   accountType;
    AccountStatus status;
    Currency      currency;
    Money         balance;
    /** 账户别名 */
    String        aliasName;
    /** 渠道编码 */
    ChannelCode   channelCode;
    /** 在途资金 */
    Money         transitAmount;
    /** 冻结资金 */
    Money         freezeAmount;
    /** 信用额度 */
    Money         creditQuotaAmount;
    /** 历史收入总金额 */
    Money         historyIncomeAmount;
    /** 历史支出总金额 */
    Money         historyPaidAmount;
    String        memo;
}